Added GIF files to the Get Info command in Mizer. All supported file types for optimization can now be tested through the Get Info command to show the results that optimization will have on file size without modifying the original file.
Added support for aliased preferences files. You can now place an alias, with the same name as the original preferences file, of the preferences file in the Preferences folder, and locate your actual preferences file anywhere. This was implemented at a user suggestion, so make a suggestion if you have one, they often find there way to Mizer.
Corrected a problem with error fall through for System resource checks made at application start up time, which could have resulted in incorrect error messages being shown when some needed resources were missing.
The primary documentation for Mizer is now in PDF format, with a big special thanks to Diana Sunday.
Mizer™ 1.7 - Build #638 (July 6th, 1999)
Implemented the first GIF optimization for Mizer. This is a basic and lossless optimizer for single image GIF files that corrects all common problems with saved GIF files such as extra palettes, redundant colors in palettes, higher bit-depths than required, and a higher version number of the GIF format than required for the file. As with the JPEG optimizer, results will vary depending on the source of the original file, but the end result will always be a GIF file that is as small as possible without changing the image data at all.
Additional mechanisms for GIF optimization are also planned, this is the just the initial one that handles the simple case and provides the basic architecture of the GIF optimizer.
Implemented additional preferences control so that all optimizers in Mizer, including the one for HTML source may be turned on and off. It can be used as JPEG optimizer, GIF optimizer, or HTML optimizer or any combination thereof now.
Corrected a problem removing C style comments in JavaScripts that could cause the comment to not be removed completely if it was in the form of:
/*
*
* Lots of extra asterics in this comment
*
*/
Mizer™ 1.6.1 - Build #589 (June 21, 1999)
Fixed string length compare bug in tag removal. The last byte of the string was not being compared, so if tags of the same length were identical save for the last byte, ones not to be removed could be. This only manifested as a problem with </DL> tags mistaken for </DD> and </DT> tags. This problem was introduced in version 1.5 with the changes made to the tag optimization mechanism, but was subtle enough to go undetected for some time.
Fixed a problem introduced with the new HTML comment handling in version 1.6 within JavaScripts in the special case hiding comments for JavaScript data. If the opening hiding wasn't immediately after the end of the script tag, then the HTML comment removal within JavaScripts would conflict, and strip the remainder of the JavaScript as a HTML comment to remove within the JavaScript.
Mizer™ 1.6 - Build #582 (June 1, 1999)
Version 1.6 is a significant feature enhancement, which primarily improves the Macintosh interface but does make important optimization improvements as well.
Both the Navigation Manager and Standard File Package get file dialogs have been greatly improved with enhanced file filtering so only optimizable files are shown. (HTML source, JavaScript source, and JPEG image files at present.)
Data previews have also been added to the Navigation Manager get file dialogs. Translated theme controls and backgrounds have also been added to all Standard File Package get file dialogs when the Appearance Manager is present.
A Get File Info command has been added to the application to display file information, the command (File -> Get File Info... or Command - I) shows critical information about the file chosen including file type, creator code, owning application name, creation date, last file modification date, the size of the file's data fork and resource fork, and most importantly, what the file size WOULD BE when optimized for any optimizable file.
An external JavaScript source file optimizer has been added. This performs the same as the previously existing in-line JavaScript optimization, except works on .js files references as
<script src=myscript.js></script>.
Default file extensions recognized for external JavaScript files are '.js' and '.jss'. These are stored in STR# resource ID 259 and more can be added by adding strings to this resource.
The JavaScript engine has also been improved to extend HTML comment removal to within JavaScript data, taking into account the special case HTML comments used to hide scripts from older browsers. See version 1.5 changes for more information on comment removal.
Mizer now strips its own <noop></noop> (no-operation) directives, used to tell Mizer not to touch particular blocks of syntax, from source as a last step processing HTML files. Before these were left in as an editing consideration.
JPEG image optimization has been significantly improved for additional savings, which much internal restructuring of the JPEG optimizer.
Logging functions have also been extended to include JPEG and JavaScript optimizers.
Fixed a trivial interface bug where the Select All menu item was enabled for dialogs without any selectable items ie. the About dialog.
Mizer™ 1.5.2 - Build #538 (May 27, 1999)
Corrected a problem that caused file filtering to fail when the application and files resided on different volumes.
Fixed bug in image tag attribute removal that would under some circumstances leave a stray quote in the tag, which would cause improper display in some browsers when it occurred.
Mizer™ 1.5.1 - Build #532 (May 24, 1999)
Fixed bug causing backup preference setting to be ignored and backup HTML files to always be created.
Corrected the MenuLib problem which inadvertently caused a dependency on System 8.5 from a call made to EnableMenuItem in the new application menu handling. This was manifested with errors from the code fragment manager on systems prior to 8.5 when attempting to launch the application to the effect of "MenuLib" could not be found.
Changed linking of all libraries to weak and added additional system resource checks so as to avoid any similar problems to the above in the future.
Fixed a potential problem in the new HTML comment removal when inline style information is used with hiding HTML comments. These were not being treated as a special case and should have been.
The last item is not a change in 1.5.1, but one that was made in 1.5 without note that has been the source of a problem report due to unexpected behavior.
As of version 1.5 Mizer uses a new method of identifying HTML files, and first checks the file type for 'TEXT' before checking the file name for a recognized extension. This improves safety and speed, so it is generally a good change.
If for any reason your HTML files do not have their Mac file type set to 'TEXT', Mizer 1.5 and up will not recognize or optimize them, however.
If you need to change file types before optimization, you should download Typer. It will make the required change to 'TEXT' based on file extension criteria and is available for download at the Antimony Web site.
Mizer™ 1.5 - Build #529 (May 8, 1999)
Version 1.5 is a very substantial update that changes many things in Mizer and lays the ground work for many more. The application has been restructured from a simple Drag & Drop shell to a robust and expandable application framework incorporating Apple's latest technologies. This release no longer supports 68K based machines, requires the Appearance Manager, and will use the Navigation Manager if present.
The minimum system requirements are now System 7.5.5 and the Appearance Manager, and all other previous system requirements as well, which are outlined in the Mizer FAQ.
Key changes have been made in the Mizer interface. Progress reporting has been expanded with much more useful information presented during optimization. The Preferences command has been renamed Settings and moved to the Edit menu following Apple's newest Human Interface Guidelines. The Platinum Appearance has been fully embraced and all dialogs are now Movable Modal, except when the Standard Get File system dialogs when the Navigation Manager is not present. These interface changes are minor from the usage standpoint, and should not require much adjustment.
Thread usage has been greatly improved so that no single processing action (dropping a batch selection of files for instance) will require more than one processing thread. This change has many advantages, speeding application execution, lowering memory requirements, and giving more stability by virtue of simplicity. Processing threads now have a much larger stack size, which should reduce recursion problems when scanning many levels deep into folders of files.
Updating processed files is now done with absolute safety instead of done with speed as that was before. Unexpected errors during file writing can no longer result in incomplete files.
Custom icon bits are now turned off when the resource forks of those files are removed, this was an oversight before that was improper but mostly harmless. It was noticed when writing the new interface code that displays file icons in the progress window.
Logging behavior has been changed in general. This version uses a central log file for all files processed, with the central log file located in the folder containing the application. Also, the log file format has been expanded to include more information.
The biggest change of all... Mizer is no longer just for optimizing HTML. Version 1.5 adds JPEG optimization. This is a lossless process that removes all unneeded information from the JPEG without changing its compression. It has been tested with all current browsers, and most old browser versions to be fully compatible with browsers supporting in-line JPEG display.
It has also been tested with all versions of Photoshop with JPEG support to be safe, but this process may interfere with some applications reading JPEG files causing them not to believe the file is a valid JPEG because a common marker used by many applications to test file type will be removed. This does not make the JPEG invalid, but it may make some applications that check file type based on this marker to not recognize the file as a JPEG, and therefore should not be performed on JPEG files that may be exchanged with others for editing.
File filtering in this version is completely changed to be more easily configurable, though the corresponding interface has not been added. File extensions that are recognized as HTML files are now contained in STR# resource 256. You can add or remove extensions now using ResEdit or Resorcerer. A future update will complete the interface to allow easier user configuration.
The HTML and JavaScript optimization engines in this version has also been greatly improved, with many changes made to improve both efficiency, safety, and preference.
Entity conversion has been added in this version, and entity elements are translated to the shortest form now.
HTML comment removal has been added. All HTML comments not recognized as a server side include directive will be removed. The list of tokens identifying a server side include are in STR# resource 258, and can be edited using ResEdit or Resorcerer. All standard and extended SSI directive are recognized now, but if you are using proprietary preprocessing methods the proper identifiers may need to be added to this resource. A future update will complete the interface to allow easier user configuration.
Settings control now allows liberal (as previous versions of Mizer did) quote removal in all attributes or strict (to the letter of the HTML specification) quote removal.
Tag optimization (as per setting name convention for turning it on) is now controlled by the contents of STR# resource 257 which contains a list of all HTML tags to be removed in this case.
Formatting removal has been made even more efficient in this version for still greater file size savings.
Special case handling of hiding HTML comments around JavaScript data has been made more robust resulting in potential problems avoided and more efficient operation.
Removal of formatting and excess quotes from within attributed HTML tags has been made much more robust to avoid a potential problem discovered when preprocessing directives in use within the attributes were not separated from HTML syntax elements by white space.
Mizer™ 1.3 - Build #202 (November 6, 1998)
The new JavaScript optimization engine no longer requires all proper semicolons in scripts, and is as forgiving of JavaScript formatting as browsers are now.
Added proprietary tag recognition to direct Mizer™ to not optimize portions of HTML files. Blocks of syntax can now be enclosed in <noop> </noop> tag pairs if it is not desirable to optimize it.
Additional default value attributes are now removed from more tags. This is another good boost in optimization efficiency.
Extended the liberal definition of alpha-numeric, used in removing quote pairs from attributes to include '-'. ':', '@', '?', '#', '$', '%', '&', and ';' further increasing optimization efficiency without any ill effect in any browsers.
Fixed an oversight that was reducing efficiency by failing to merge some runs of multiple spaces in files, and also eliminated inefficiencies with space runs that were introduced during optimization.
Closing paragraph </p> tags are now removed in all cases where this will not change appearance.
Improved the JavaScript comment removal to better handle the special case of hiding HTML comments. Non-script contents of hiding comments are now removed as well.
Fixed bug that would cause the ending hiding HTML comment in JavaScripts to be removed in some cases when it should not have been.
<SCRIPT><!--
function foo() {}
// script finished --></SCRIPT>
or
<SCRIPT><!--
function foo(){}
// this is a // nested comment --></SCRIPT>
Would become:
<SCRIPT><!--
function foo(){}
</SCRIPT>
Fixed bug in C++ comment removal in JavaScripts where empty C++ style comments would cause the line following the empty comment to be removed.
<script language="JavaScript">
<!--//
function onA10175Over() {}
function onA10175Out() {}
//-->
</script>
Was changed into:
<script language=JavaScript><!--
function onA10175Out(){}//--></script>
Mizer™ 1.2.3 - Build #173 (October 4, 1998)
Fixed and reinstated JavaScript comment removal, which had initially been tested in previous beta, for both C style /* */ and C++ style // comments within scripts. This also corrected a problem with JavaScript optimization that could have resulted in a line of script code being wrapped behind a C++ // style comment when the comment immediately preceded the bracket closing a JavaScript function. This should end problems with CyberStudio's stock JavaScripts, which happened to have comments placed in this way.
Greatly improved the sturdiness of quoted value code, so that all cases, no matter how ugly and insane, of nested and mismatched quotes and parentheses within attributes and JavaScript functions are all identified correctly.
Previously there were some cases that could throw Mizer™ for a loop reducing it's efficiency because more data than should have been would be treated as a literal quoted value.
Fixed a bug that was introduced fixing a bug dealing with empty attribute values, such as the ones Lasso uses, that was reducing efficiency and causing many quotes around attribute values that should have been removed to be left in place.
Added '.txt' and '.cfm' to the list of recognized file extensions to process at user request.
Mizer™ 1.2.2 - Build #158 (September 7, 1998)
Made changes to the engine to avoid Mizer™ changing some text to uppercase in some instances when malformed syntax caused errors identifying the end of token attributes. Before Mizer™ would change attributes to all uppercase in the process of checking them, which was much faster, but has proven to be unsafe given the possibility of syntax malformed in ways that can't be compensated for.
Now twice as many compares are used when identifying attributes, which is the slower, safter way to do things.
Mizer™ 1.2.1 - Build #156 (September 3, 1998)
Added '.lasso' and '.incl' to list of recognized file extensions at user request. It is planned for the next significant update to implement a mechanism so that this is user configurable as it would provide more flexibility.
Corrected problem between Mizer™ optimization and the behavior of Lasso search scripts. It seems Lasso depends on empty value attributes in its search processing, so now Mizer™ does not remove properly formed, empty attributes.
Mizer™ 1.2 - Build #152 (August 15, 1998)
Final public release of 1.2.
Added preferences control for tag level (removal of optional tags) optimization at suggestion of user. More precise control over tag level processing is planned a future release.
Fixed bug introduced in 1.2b that could cause following text to be changed to upper case when quoted attribute values in image tags contained mismatched or partial quote pairs causing an element of the attribute value to be processed as an attribute.
Temporarily removed JavaScript comment striping. A potential problem was discovered and it needs to be better addressed before being suitable for a final release version.
Temporarily removed </P> from the set of optional closing tags that could be removed until a better preferences interface allowing individual tag control for tag level processing can be implemented. Removing closing </P> tags can possibly change the appearance of pages because of assumed <P> tags. (A <P> tag is automatically assumed to follow all </P> tags and when an actual <P> tag doesn't follow a </P> tag, the paragraph breaking is changed when the </P> tag is removed.)
Revised FAQ and accompanying materials to better address common questions and issues with use.
Mizer™ 1.2b3 - Build #136 (July 27, 1998)
Limited beta release.
Changed the logging format to make it more friendly.
Revised FAQ and accompanying materials to better address common questions and issues with use.
Mizer™ 1.2b2 - Build #132 (July 24, 1998)
Limited beta release.
Fixed bug introduced in 1.2b where attributed tokens were not identified properly when a line break occurred after the token . This had no ill effect, but was reducing efficiency.
Fixed bug introduced in 1.2b where images linked through image maps were not identified as being linked causing border=0 attributes to be stripped when they should not have been.
Fixed bug introduced in 1.2b in the special case processing that preserves hiding HTML comment tags in JavaScrits. When the ending comment tag was in the more complex form of:
// [variable lenght of spaces/tabs/returns] --></SCRIPT>
Then the JavaScript C++ style comment would be removed, when it should not have been, leaving only:
></SCRIPT>
And causing errors because of the extranious '>'. Only the form of:
//--></SCRIPT>
Was handled correctly, originally. Now both are handled correctly in the special case.
Now removing all empty attribute values (ie. value="" where nothing is contained within the quotes) in all attributed tags. This doesn't include condensed format attributes, which stay.
Now eliminating all occurrences of the NAME attributes from image tags.
Now eliminating all x-sas-useimageheight and x-sas-useimagewidth attributes in image tags. They are not part of any of the HTML specs, and I believe are HomePageisms. Ditto for the two similar x-claris-useimageheight and x-claris-useimagewidth tags, which are also removed.
Now removing all <X-SAS-WINDOW> tags as well, which are more WYSIWIG fluff.
Included "." and "/" in the definition of alpha-numeric values for attributes, which is stretching things a bit, but seems to have no ill effect in any browsers and cuts out some extra bytes in relative URLs.
Now eliminating optional closing HTML tags: </COLGROUP>, </DD>, </DT>, </HEAD>, </HTML>, </LI>, </OPTION>, </P>. These and others are optional as defined by the HTML specifications, but other optional closing tags such as </TD> and </TR> have proven to be required by many browsers, so they are not removed as well.
Mizer™ 1.2b - Build #104 (July 18, 1998)
Beta release only to registered users.
Major changes to application architecture to improve speed and make the optimization engine cross platform (Don't worry, I'm not doing that for Windoze... OK, I admit I'm a Mac bigot.) Have not timed exactly for performance specs, yet, but 1.2 is well over a hundred times faster than 1.1.
Now removes all unneeded JavaScript comments, but leaves in place the HTML comments used to hide scripts from older browsers.
Now removes unneeded attributes in all image tags, which can currently include - depending on variables of the surrounding syntax - border, hspace, vspace, and those big naturalsizeflag attributes PageMill adds.
Will be adding more complete tag attribute removal in coming versions. There are more than 404 different attributes for 55 attributed tags, and that's a lot of testing to confirm browser behavior for all of those.
Mizer™ 1.1 - Build #63 (July 4, 1998)
Improved the engine for greater optimization. Unneeded quotes around alphanumeric attribute values are now removed by the optimization process.
Optimized code for smaller size and removed unused resources. Mizer™ application size is now 161,159 bytes down from 178,382 bytes.
Revised FAQ and accompanying materials to better address common questions and issues with use.
Not widely distributed.
Mizer™ 1.0 - Build #54 (June 4, 1998)
Fixed a string compare bug cause by compiler precedence error that resulted in one character tags being improperly identified. This manifested as leading and trailing spaces being striped from anchor and bold tags in some cases where they should not have been.
<p>
<a href="page.html>Read this page</a> and you will learn the
<b>secret</b>
of life.
</p>
Would become:
<p><a href="page.html>Read this page</a>and you will learn the<b>secret</b>of life.</p>
Which would render in the browser as:
Read this pageand you will learn thesecretof life.
Mizer™ 1.0 - Build #53 (June 2, 1998)
Corrected bug that could potentially cause problems with Java Scripts when the hiding opening HTML comment tag was followed by certain Java Script syntax. Example of the circumstances that triggered the problem is given below.
<!--
if(foo)
{
function(foo);
}
-->
Would result in:
<!--if(foo){function(foo);}-->
Which was ignored by browsers because the script line was entirely on a line beginning with an HTML opening comment tag. However, if any HTML syntax followed the opening comment:
<!-- My foo script
if(foo)
{
function(foo);
}
-->
Would result in:
<!--My foo script
if(foo){function(foo);}-->
Then optimization and function would be correct and browsers would recognize the first line of the script as that and not ignore it as part of a comment.
Mizer™ 1.0 - Build #52 (May 21, 1998)
Original distributed version provided as master copy to Digital River for electronic distribution and supplied to members of the press for pre-release review.